1. Field of the Invention
The present invention relates to data transmissions across computer networks. More specifically, the present invention relates to a method and an apparatus for facilitating efficient flow control for multicast or broadcast data transmissions.
2. Related Art
One very common type of transmission across a computer network is a multicast or a broadcast transmission, in which a single sender transmits the same data to multiple receivers. In some cases, the single sender can transmit data to thousands of receivers.
One challenge in supporting multicast or broadcast data transmissions is to control the rate at which the sender transmits packets to receivers so that slower receivers do not get overloaded, which can cause packets be lost. In order to control the transmission rate, it is useful to receive feedback information from the receivers indicating whether or not the receivers are experiencing congestion as a result of the data transmission. This allows the sender to reduce its rate of data transmission if the receivers are experiencing congestion, and possibly to increase its rate of transmission if the receivers are not experiencing congestion.
However, receiving feedback information from a large number of receivers can be impractical, because the sender can be flooded with feedback messages. Consequently, the sender will not be able to process the feedback information in a timely manner.
One solution to this problem is to send a multicast or broadcast data transmission without receiving feedback. However, doing so can cause network congestion, and is likely to lead to sub-optimal transfer rates.
Some researchers have explored the idea of basing flow control decisions on round trip time (RTT) between sender and receiver. However, measuring RTT for a broadcast or multicast transmission can be very difficult in practice because of complications involved in synchronizing clocks to measure RTT. Also, the problem of flooding the sender with feedback information still remains.
What is needed is a method and an apparatus for providing feedback information during a multicast or a broadcast data transmission from a plurality of receivers to a sender so that the sender can make good flow control decisions without flooding the sender with a large number of feedback messages.